OpenCV On Android最佳环境配置指南(Android Studio篇) 您所在的位置:网站首页 android studio 报错NDK OpenCV On Android最佳环境配置指南(Android Studio篇)

OpenCV On Android最佳环境配置指南(Android Studio篇)

2023-08-15 15:58| 来源: 网络整理| 查看: 265

简介

本文是《OpenCV On Android最佳环境配置指南》 系列教程第二篇,也是配置系列的最后一篇,适合使用Android Studio的开发人员学习。

本教程是经过本人多次踩坑,并结合网上众多OpenCV On Android的配置教程总结而来,尽希望能帮助学习OpenCV的朋友们少走弯路。如果配置上遇到问题,可在评论中留言,我将尽力帮助解决。

如果您使用的是Eclipse,请参考上一章OpenCV On Android最佳环境配置指南(Eclipse篇)。

如有转载,请标明出处

(更新时间:2020-10-12)

环境 电脑:Windows10 Java:jdk1.8.0_172 Android Studio:Version 4.0.2 SDK:Android Studio 4.0.2自带的最新SDK (请不要与Eclipse同用一SDK,以免出错)。 NDK:Android Studio 4.0.2自带的最新NDK OpenCV:V4.4.0

注:以上配置向上兼容,读者可使用更新的版本,但低版本可能出现错误

配置前说明:

本次配置不像上篇介绍Eclipse配置环境那样编写多个Demo,而是通过一个Demo,将OpenCV的Java和NDK配置方式全部讲完,尽可能手把手讲解,请大家不要跳跃式地阅读。

一、安装必要组件 打开Android Studio设置界面,进入Appearance & Behavior -> System Settings -> Android SDK。 将选项条切换到SDK Tools,勾上左下角的Show Package Details,然后按下图勾选:

1.png

点击OK,开始下载。下载完后,就可以开始创建项目了。

二、创建Android Studio工程

Create New Project,选择最后面的Native C++模板,然后进入配置界面。

2.png

这一步需要注意两个地方

1、包名:请尽量与我保持一致,否则新手容易出错。 2、最小SDK:OpenCV 4.2.0要求最小SDK不小于21。

直接Finish,项目创建成功!

提示:项目创建完成后,最好运行一下,确保基本环境没问题。

三、OpenCV Java库使用指南 3.1、环境配置

第一步:将OpenCV Java库作为Module导入。

具体步骤为:File->New->Import Module,然后将OpenCV-android-sdk\sdk\java目录导入。如下图,然后Next->Finish。

3.png

第二步:修改模块名。

默认导入的模块名为java,为了方便区分,建议修改成opencv,只需在java模块右键,然后Refactor->Rename

第二步:将导入的opencv模块从application改成library,步骤如下:

4

1、将文件预览方式切换至Android。 2、打开opencv的build.gradle文件。 3、将apply plugin: 'com.android.application'修改成apply plugin: 'com.android.library'。 4、删除(或注释)掉defaultConfig内容。 5、将Run/Debug Configurations从opencv切换到app。 6、点击Sync Now使修改生效。

第三步:给项目添加opencv依赖

菜单File->Project Structure,在Dependencies中选择app,点击+,选择Module dependency,然后勾选opencv模块,点击OK即可!如下图:

5

3.2、代码编写

在AndroidManifest.xml文件中添加权限:

.... .... 复制代码

将activity_main.xml内容修改为以下内容:

复制代码

将MainActivity.java改为以下内容:

public class MainActivity extends CameraActivity implements CameraBridgeViewBase.CvCameraViewListener2 { private JavaCameraView javaCameraView; private BaseLoaderCallback baseLoaderCallback = new BaseLoaderCallback(this) { @Override public void onManagerConnected(int status) { switch (status) { case LoaderCallbackInterface.SUCCESS: { javaCameraView.enableView(); } break; default: super.onManagerConnected(status); break; } } }; @Override protected List


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有